﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Ivy.SiteAdministration.Entity;

namespace Ivy.SiteAdministration.IBusinessLogic
{
    public interface ISiteAdministration
    {
       

        #region Sys_SessionLog
        bool SaveUserSys_SessionLogDetails(Sys_SessionLog lSys_SessionLogEntity);
        bool UpdateUserSys_SessionLogDetails(Sys_SessionLog lSys_SessionLogEntity);
        Sys_SessionLog GetSys_SessionLogByUserSessionID(string UserSessionID);
        List<Sys_SessionLog> GetAllSys_SessionLogDetails();
        List<Sys_SessionLogReport> GetAllSys_SessionLogReportDetails();
        Sys_SessionLogReport GetSys_SessionLogReportByKey(int SessionLogPrimaryID);
        bool DeleteByDate(DateTime FromDate, DateTime ToDate);
        #endregion

        #region Sys_RoleMaster
        bool AddNewSys_RoleMaster(Sys_RoleMaster Sys_RoleMasterEntity);
        bool UpdateSys_RoleMaster(Sys_RoleMaster Sys_RoleMasterEntity);
        Sys_RoleMaster GetSys_RoleMasterByKey(int RoleKey);
        List<Sys_RoleMaster> GetAllSys_RoleMasterDetails();
        #endregion

        #region Sys_ErrorLog
        bool SaveSys_ErrorLogDetails(Sys_ErrorLog Sys_ErrorLogEntity);
        Sys_ErrorLog GetSelectedSys_ErrorLogByErrorLogPrimaryID(int ErrorLogPrimaryID);
        List<Sys_ErrorLog> GetAllSys_ErrorLogDetails();
        //bool Sys_ErrorLog_DeleteByDate(DateTime FromDate, DateTime ToDate);
        #endregion

        #region Sys_ActivityMaster
        bool AddNewSys_Activity(Sys_ActivityMaster lSys_ActivityMasterEntity);
        bool UpdateSys_Activity(Sys_ActivityMaster lSys_ActivityMasterEntity);
        Sys_ActivityMaster GetSys_ActivityMasterByActivityKey(int ActivityKey);
        List<Sys_ActivityMaster> GetAllSys_ActivityMasterDetails();
        //List<Sys_ActivityMasterSummaryReport> GetAllSys_ActivityMasterSummaryDetails();
        #endregion

        #region Sys_RoleActivity
        bool AddNewSys_RoleActivity(Sys_RoleActivity lSys_RoleActivityEntity);
        bool UpdateSys_RoleActivity(Sys_RoleActivity lSys_RoleActivityEntity);
        List<Sys_RoleActivity> GetSys_RoleActivityByRoleKeyRoleActivityKey(int RoleKey);
        List<Sys_RoleActivity> GetAllSys_RoleActivityDetails();

        #endregion

        #region Sys_ActivityTypeMaster
        Sys_ActivityTypeMaster GetSys_ActivityTypeMasterByActivityTypeKey(int ActivityTypeKey);
        List<Sys_ActivityTypeMaster> GetAllSys_ActivityTypeMasterDetails();
        #endregion

        #region Sys_OrganizationMaster
        bool RegisterNewOrganization(Sys_OrganizationMaster Sys_OrganizationMasterEntity);
        bool UpdateRegisteredOrganization(Sys_OrganizationMaster Sys_OrganizationMasterEntity);
        Sys_OrganizationMaster GetSys_OrganizationMasterByKey(int OrganizationKey);
        #endregion

        #region Sys_RoleActivitySummaryReport
        List<Sys_RoleActivitySummaryReport> GetSys_RoleActivitySummaryReportByRoleKey(int RoleKey);
        List<Sys_RoleActivitySummaryReport> GetAllSys_RoleActivitySummaryReportByRoleKey(int RoleKey);
        List<Sys_RoleActivitySummaryReport> GetAllSys_RoleActivitySummaryReportByRoleKeyActivityCode(int RoleKey, string ActivityCode);
        #endregion
    }
}
